Die wichtigste Lektion für dich, @Dieterstyx, sollte sein: schalte IMMER Warnungen deines Compilers ein. Compiler sind klug und erkennen oftmals unsauberen oder fragwürdigen Code automatisch. Nur: dein Code ist ja gültig (Zuweisung + Ergebnis der Zuweisung, also 5, auf bool testen), daher compiliert dein Code. Wenn du mit gcc oder clang arbeitest, nimm mindestens -Wall -Wextra als Switches, in VS /W4. Dann hätte dir der Compiler folgendes gesagt (am Beispiel clang): <source>:9:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(Raetsel=5) { ~~~~~~~^~ <source>:9:12: note: place parentheses around the assignment to silence this warning if(Raetsel=5) { ^ ( ) <source>:9:12: note: use '==' to turn this assignment into an equality comparison if(Raetsel=5) { ^ ==